//package com.lmx.repoDomain.model;
//
//import com.fasterxml.jackson.annotation.JsonBackReference;
//import com.fasterxml.jackson.annotation.JsonManagedReference;
//import io.katharsis.resource.annotations.JsonApiIncludeByDefault;
//import io.katharsis.resource.annotations.JsonApiResource;
//import io.katharsis.resource.annotations.JsonApiToMany;
//import io.katharsis.resource.annotations.JsonApiToOne;
//import org.hibernate.annotations.Fetch;
//import org.hibernate.annotations.FetchMode;
//import org.hibernate.annotations.NotFound;
//import org.hibernate.annotations.NotFoundAction;
//
//import com.lmx.repoDomain.tmodel.BaseEntity;
//import com.lmx.repoDomain.tmodel.Role;//huibati
//import javax.persistence.*;
//import java.util.List;
//import java.util.Set;
//
///**
// * 系统用户表
// */
//@Entity
//@JsonApiResource(type = "userPrivate")
//@Table(name = "t_s_base_user")
//@Inheritance(strategy = InheritanceType.JOINED)
//public class UserPrivate extends BaseEntity {
//    private String code;// 编码
//    private String loginName;// 用户名
//    protected Role role;// 角色
//    private String name;// 真实姓名
//    private String entName;// 企业名称
//    private String password;// 用户密码
//    private String avatar;// 头像文件名
//    private String desc;// 自我描述
//    private Short status;// 状态1：在线,2：离线,0：禁用
//    private Short sex;// 性别,1男2女
//    private String phone;// 电话号码
//    private String email;// 邮箱
//    private String weixin;// 微信号
//    private String qqnum;// QQ
//    private String address;// 地址
//    private Integer age;// 年龄
//    private Set<Dicttype> cstag;// 客服标签表
//    private Set<Dicttype> language;// 语言
//    private String introduce;// 简介
//    private Userextend extendInfo;// 用户扩展
//    private Edinfo edinfo;// 企业信息
////    private UserAgent agentinfo;// 坐席信息信息-华为
//    private String regWay;// 注册途径
//    private Task currentTask;// 当前任务
//    private String verifyFailReason;// 审核失败原因
//    private String inviter;
//    private UserPrivate inviteUser;//邀请人
////    private List<UserPrivate> invitees;//被邀请人
//    private Integer createTime;// 创建时间
//    private Integer updateTime; //更新时间
//    private String remark; //备注
//
//    @Column(name = "code")
//    public String getCode() {
//        return code;
//    }
//
//    public void setCode(String code) {
//        this.code = code;
//    }
//
//    @Column(name = "login_name")
//    public String getLoginName() {
//        return loginName;
//    }
//
//    public void setLoginName(final String loginName) {
//        this.loginName = loginName;
//    }
//
//    @JsonApiToOne
//    @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.REFRESH)
//    @JoinColumn(name = "role_id",foreignKey = @ForeignKey(name = "null"))
//    public Role getRole() {
//        return role;
//    }
//
//    public void setRole(Role role) {
//        this.role = role;
//    }
//
//    @Column(name = "name")
//    public String getName() {
//        return name;
//    }
//
//    public void setName(final String name) {
//        this.name = name;
//    }
//
//    @Column(name = "ent_name")
//    public String getEntName() {
//        return entName;
//    }
//
//    public void setEntName(final String entName) {
//        this.entName = entName;
//    }
//
//    @Column(name = "password")
//    public String getPassword() {
//        return password;
//    }
//
//    public void setPassword(final String password) {
//        this.password = password;
//    }
//
//    @Column(name = "avatar")
//    public String getAvatar() {
//        return avatar;
//    }
//
//    public void setAvatar(final String avatar) {
//        this.avatar = avatar;
//    }
//
//    @Column(name = "descr")
//    public String getDesc() {
//        return desc;
//    }
//
//    public void setDesc(final String desc) {
//        this.desc = desc;
//    }
//
//    @Column(name = "status")
//    public Short getStatus() {
//        return status;
//    }
//
//    public void setStatus(final Short status) {
//        this.status = status;
//    }
//
//    @Column(name = "sex")
//    public Short getSex() {
//        return sex;
//    }
//
//    public void setSex(final Short sex) {
//        this.sex = sex;
//    }
//
//    @Column(name = "phone")
//    public String getPhone() {
//        return phone;
//    }
//
//    public void setPhone(final String phone) {
//        this.phone = phone;
//    }
//
//    @Column(name = "email")
//    public String getEmail() {
//        return email;
//    }
//
//    public void setEmail(final String email) {
//        this.email = email;
//    }
//
//    @Column(name = "weixin")
//    public String getWeixin() {
//        return weixin;
//    }
//
//    public void setWeixin(final String weixin) {
//        this.weixin = weixin;
//    }
//
//    @Column(name = "qqnum")
//    public String getQqnum() {
//        return qqnum;
//    }
//
//    public void setQqnum(String qqnum) {
//        this.qqnum = qqnum;
//    }
//
//    @Column(name = "address")
//    public String getAddress() {
//        return address;
//    }
//
//    public void setAddress(final String address) {
//        this.address = address;
//    }
//
//    @Column(name = "age")
//    public Integer getAge() {
//        return age;
//    }
//
//    public void setAge(Integer age) {
//        this.age = age;
//    }
//
//    @JsonApiToMany
//    @JsonApiIncludeByDefault
//    @ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.REFRESH)
//    @JoinTable(name = "ccd_service_lable", joinColumns = {
//            @JoinColumn(name = "cs_id", nullable = false, updatable = false,foreignKey = @ForeignKey(name = "null")) }, inverseJoinColumns = {
//            @JoinColumn(name = "lable_id", nullable = false, updatable = false,foreignKey = @ForeignKey(name = "null")) })
//    @Fetch(FetchMode.JOIN)
//    public Set<Dicttype> getCstag() {
//        return cstag;
//    }
//
//    public void setCstag(Set<Dicttype> cstag) {
//        this.cstag = cstag;
//    }
//
//    @JsonApiToMany
//    @JsonApiIncludeByDefault
//    @ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.REFRESH)
//    @JoinTable(name = "ccd_user_language", joinColumns = {
//            @JoinColumn(name = "user_id", nullable = false, updatable = false,foreignKey = @ForeignKey(name = "null")) }, inverseJoinColumns = {
//            @JoinColumn(name = "language_id", nullable = false, updatable = false,foreignKey = @ForeignKey(name = "null")) })
//    @Fetch(FetchMode.JOIN)
//    public Set<Dicttype> getLanguage() {
//        return language;
//    }
//
//    public void setLanguage(Set<Dicttype> language) {
//        this.language = language;
//    }
//
//    @Column(name = "introduce")
//    public String getIntroduce() {
//        return introduce;
//    }
//
//    public void setIntroduce(String introduce) {
//        this.introduce = introduce;
//    }
//
//    @JsonApiToOne
//    @JsonApiIncludeByDefault
//    @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.REFRESH)
//    @JoinColumn(name = "extend_info",foreignKey = @ForeignKey(name = "null"))
//    @Fetch(FetchMode.JOIN)
//    public Userextend getExtendInfo() {
//        return extendInfo;
//    }
//
//    public void setExtendInfo(Userextend extendInfo) {
//        this.extendInfo = extendInfo;
//    }
//
//    @JsonApiToOne
//    @JsonApiIncludeByDefault
//    @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.REFRESH)
//    @JoinColumn(name = "edinfo",foreignKey = @ForeignKey(name = "null"))
//    @Fetch(FetchMode.JOIN)
//    public Edinfo getEdinfo() {
//        return edinfo;
//    }
//
//    public void setEdinfo(Edinfo edinfo) {
//        this.edinfo = edinfo;
//    }
//
///*    @JsonApiToOne
//    @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.REFRESH)
//    @JoinColumn(name = "agentinfo",foreignKey = @ForeignKey(name = "null"))
//    @Fetch(FetchMode.JOIN)
//    public UserAgent getAgentinfo() {
//        return agentinfo;
//    }
//
//    public void setAgentinfo(UserAgent agentinfo) {
//        this.agentinfo = agentinfo;
//    }*/
//
//    @Column(name = "reg_way")
//    public String getRegWay() {
//        return regWay;
//    }
//
//    public void setRegWay(String regWay) {
//        this.regWay = regWay;
//    }
//
//    @JsonApiToOne
//    @JsonApiIncludeByDefault
//    @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.REFRESH)
//    @JoinColumn(name = "current_task",foreignKey = @ForeignKey(name = "null"))
//    @Fetch(FetchMode.JOIN)
//    public Task getCurrentTask() {
//        return currentTask;
//    }
//
//    public void setCurrentTask(Task currentTask) {
//        this.currentTask = currentTask;
//    }
//
//    @Column(name = "verify_fail_reason")
//    public String getVerifyFailReason() {
//        return verifyFailReason;
//    }
//
//    public void setVerifyFailReason(String verifyFailReason) {
//        this.verifyFailReason = verifyFailReason;
//    }
//
//    @Column(name = "inviter")
//    public String getInviter() {
//        return inviter;
//    }
//
//    public void setInviter(String inviter) {
//        this.inviter = inviter;
//    }
//
//    @JsonApiToOne
//    @ManyToOne
//    @JoinColumn(name = "invite_user", nullable = true,foreignKey = @ForeignKey(name = "null"))
//    @NotFound(action = NotFoundAction.IGNORE)
//    @JsonBackReference
//    public UserPrivate getInviteUser() {
//        return inviteUser;
//    }
//
//    public void setInviteUser(UserPrivate inviteUser) {
//        this.inviteUser = inviteUser;
//    }
//
// /*   @JsonApiToMany
//    @OneToMany(mappedBy = "inviteUser")
//    @JsonManagedReference
//    public List<UserPrivate> getInvitees() {
//        return invitees;
//    }
//
//    public void setInvitees(List<UserPrivate> invitees) {
//        this.invitees = invitees;
//    }*/
//
//    @Column(name = "create_time")
//    public Integer getCreateTime() {
//        return createTime;
//    }
//
//    public void setCreateTime(Integer createTime) {
//        this.createTime = createTime;
//    }
//
//    @Column(name = "update_time")
//    public Integer getUpdateTime() {
//        return updateTime;
//    }
//
//    public void setUpdateTime(Integer updateTime) {
//        this.updateTime = updateTime;
//    }
//
//    @Column(name = "remark")
//    public String getRemark() {
//        return remark;
//    }
//
//    public void setRemark(String remark) {
//        this.remark = remark;
//    }
//
//
//}